package utility

import (
	"gin_demo/internal/consts"

	"golang.org/x/crypto/bcrypt"
)

func BctypMake(pwd []byte) (string, bool) {
	// GenerateFromPassword 以给定的代价返回密码的 bcrypt 哈希值。如果给定的成本小于 MinCost
	// 则成本将设置为 DefaultCost。使用此包中定义的 CompareHashAndPassword 将返回的散列密码与其明文版本进行比较。
	b, err := bcrypt.GenerateFromPassword(pwd, bcrypt.DefaultCost)
	if err != nil {
		consts.App.Log.Error(err.Error())
		return "", false
	}
	return string(b), true
}
func BcryptMakeCheck(pwd []byte, hashedPwd string) bool {
	byteHash := []byte(hashedPwd)
	// CompareHashAndPassword 将 bcrypt 散列密码与其可能的明文等效密码进行比较。成功时返回 nil，失败时返回错误。
	err := bcrypt.CompareHashAndPassword(byteHash, pwd)
	if err != nil {
		return false
	}
	return true
}
